// 封装倒计时逻辑函数
import {ref, computed, onUnmounted} from "vue"
import dayjs from "dayjs"

export const useCountDown = () => {
	// 1.响应式的数据
	const time = ref(0);
	let timer = null;
	// 格式化时间 为 xx分xx秒
	const formatTime = computed(() => dayjs.unix(time.value).format("mm分ss秒"))
	// 2.开启倒计时的函数
	const start = (currentTime) => {
		// 开始倒计时的逻辑
		// 核心逻辑的编写:每隔1s减一
		time.value = currentTime
		timer = setInterval(() => {
			time.value--;
			if (time.value <= 0) {
				clearInterval(timer)
			}
		}, 1000)
	}

	// 组件销毁时清除定时器
	onUnmounted(() => {
		timer && clearInterval(timer)
	})

	return {
		formatTime,
		start
	}
}
